"""
Case Type   : cm_ctl
Case Name   : 执行cm_ctl pause/resume参数异常,合理报错
Create At   : 2023/03/24
Owner       : opentestcase012
Description :
    1.执行cm_ctl pause参数异常;
    2.执行cm_ctl resume参数异常;
Expect      :
    1.执行失败,option requires an argument -- 'D'
    2.执行失败,option requires an argument -- 'D'
History     :
"""
import os
import unittest

from testcase.utils.CommonSH import CommonSH
from testcase.utils.Constant import Constant
from testcase.utils.Logger import Logger

primary_sh = CommonSH('PrimaryDbUser')


# @unittest.skipIf(2 != primary_sh.get_node_num(), '非1+2环境不执行')
class DefinedResource(unittest.TestCase):
    def setUp(self):
        self.log = Logger()
        self.log.info(f'----{os.path.basename(__file__)} start----')
        self.constant = Constant()
        self.primary_sh = CommonSH('PrimaryDbUser')

    def test_cm(self):
        text = '----step1:执行cm_ctl pause参数异常; expect:合理报错----'
        self.log.info(text)
        cm_ctl_res = self.primary_sh.exec_cm_ctl('pause', '-D')
        self.assertIn("option requires an argument -- 'D'", cm_ctl_res,
                      '执行失败:' + text)

        text = '----step2:执行cm_ctl resume参数异常; expect:合理报错----'
        self.log.info(text)
        cm_ctl_res = self.primary_sh.exec_cm_ctl('resume', '-D')
        self.assertIn("option requires an argument -- 'D'", cm_ctl_res,
                      '执行失败:' + text)

    def tearDown(self):
        self.log.info('-----清理环境-----')
        text = '----step3:恢复集群状态; expect:执行成功----'
        self.log.info(text)
        cm_ctl_res1 = self.primary_sh.exec_cm_ctl('resume')
        self.assertIn(self.constant.cm_resume_success_msg, cm_ctl_res1,
                      '执行失败:' + text)
        self.log.info(f'----{os.path.basename(__file__)} finish----')
